home *** CD-ROM | disk | FTP | other *** search
- SUBROUTINE RSTART
- *-----------------------------------------------------------------------
- *
- * Processes the routine start
- *
- *-----------------------------------------------------------------------
- include 'PARAM.h'
- include 'ALCAZA.h'
- include 'CLASS.h'
- include 'FLAGS.h'
- include 'CURSTA.h'
- include 'STATE.h'
- include 'TREECOM.h'
- LOGICAL FLOC
- *--- reset modify and filter flag
- DO 10 I=1,NSTAMM
- IMODIF(I)=0
- 10 CONTINUE
- *--- only initialize for new routine if really true
- IF(.NOT.STATUS(6)) THEN
- IF(ACTION(24)) THEN
- *--- reset counters and flags for c.b. names
- STATUS(12)=.FALSE.
- STATUS(13)=.FALSE.
- NCBNAM=0
- NEQNAM=0
- NCBVAR=0
- DO 20 I=1,MAXGRP
- LCBNAM(I)=0
- 20 CONTINUE
- DO 30 I=1,MXNAME
- LCBVAR(I)=0
- 30 CONTINUE
- ENDIF
- IF(ACTION(29)) THEN
- *--- reset counters for TREE
- NCALLR=0
- NCALLD=0
- NEXEL=0
- ENDIF
- *--- set flag to re-initialize filters
- IFILTR=-1
- *--- 'print routine header' flag
- STATUS(9)=.TRUE.
- *--- reset SUBROUTINE flag
- STATUS(14)=.FALSE.
- *--- get routine name
- DO 40 I=1,NSTAMM
- IF (ICLASS(I,1).NE.0) GOTO 50
- 40 CONTINUE
- *--- only comments
- SCROUT='COMMENTS'
- GOTO 60
- 50 CONTINUE
- CALL EXTRAC(I,'PART')
- CALL CLASSF
- *--- find routine name
- IF (ISTMDS(14,ICURCL(1)).NE.0) THEN
- *--- proper routine header
- STATUS(14)=ISTMDS(6,ICURCL(1)).EQ.66
- FLOC=ACTION(10)
- ACTION(10)=.TRUE.
- ISNAME=IRNAME+NRNAME
- CALL GETALL
- ACTION(10)=FLOC
- IF(NSNAME.GT.0) THEN
- SCROUT=SNAMES(ISNAME+1)
- ELSEIF(ISTMDS(6,ICURCL(1)).EQ.4) THEN
- SCROUT='BLOCKDAT'
- ELSE
- SCROUT='NOHEADER'
- ENDIF
- ELSE
- SCROUT='NOHEADER'
- ENDIF
- 60 CONTINUE
- *--- reset variable type routine
- IF (ACTION(20)) CALL SETTYP(0)
- *--- preset 'routine filtered' flag
- STATUS(7)=.TRUE.
- *--- filter for routine names
- IF (ACTION(16)) CALL FILTER(10,7)
- ENDIF
- *--- process only if routine selected
- IF (STATUS(7)) THEN
- *--- classify all statements
- DO 70 J=1,NSTAMM
- IF (ICLASS(J,1).NE.0) THEN
- CALL EXTRAC(J,'FULL')
- CALL CLASSF
- ICLASS(J,1)=ICURCL(1)
- ICLASS(J,2)=ICURCL(2)
- ENDIF
- 70 CONTINUE
- *--- prepare re-numbering if requested
- IF (ACTION(13)) CALL PRENUM
- ENDIF
- *--- reset variables
- KNTDO=0
- KNTIF=0
- WRITE(MPUNIT,'(2A)') ' +++ start processing routine: ',SCROUT
- END
-